Csit.Delta.Util.TimeConverter
Строка определения временной зоны¶
Для задания правил перевода часов на летнее/зимнее время и сдвига относительно UTC используется строка специального вида. Синтаксис этой строки:
<TzString> ::= <TzFormula> | <TzName> | {<TzFormula>, <TzName>} <TzFormula> ::= {+|-}<UtcBias>[D][{+|-}<AddBias>] <TzName> ::= UTC | LOCAL | <SystemTzName> | <SpecTzName> <SpecTzName> ::= {D8 Russia (UTC{+|-}<UtcBiasHour>:<UtcBiasMinute>)} | {D8 Moscow}
где
-
TzString
Строка определения временной зоны. Она может состоять из формулыTzFormula
и/или имени временной зоныTzName
. Если указано и то, и другое, тоTzName
имеет приоритет надTzFormula
.
Двойственное определение временной зоны может быть необходимо, когда нужно указать, что было использовано местное время, и уточнить, какому именно часовому поясу это местное время соответствует. Например:LOCAL, Kaliningrad Standard Time
-
TzFormula
Формула, задающая смещение относительно универсального времени и признак использования переходов на зимнее/летнее время.
UtcBias
Величина смещения относительно UTC. Может быть задана в часах или минутах (еслиUtcBias > 24
, то считается, что сдвиг указан в минутах).
ПередUtcBias
должен быть обязательно указан знак+
или-
. Если указан положительный сдвиг, то это означает, что при переводе из UTC в локальную временную зону величина времени будет увеличена на значениеUtcBias
(т.е. местное время опережает универсальное). Например,+5D - на 5 часов вперед от UTC -330 - на 330 минут назад от UTC
D
Признак использования переходов на зимнее/летнее время. Если букваD
не указана, то переводы часов на зимнее/летнее время не используются. Например,+5D - на 5 часов вперед от UTC с использованием летнего времени
AddBias
Дополнительное смещение (в минутах или часах). Дополнительное смещение добавляется к величине времени после сдвига наUtcBias
и применения всех правил учета разницы между зимним и летним
временем. Например,+3D-1 - на 3 часа вперед от UTC c использованием летнего времени и вычитанием одного часа
-
TzName
Имя временной зоны. Возможны следующие варианты значений:
UTC
Универсальное время.
LOCAL
Местное время.
SystemTzName
Наименование временной зоны, известное операционной системе. Перечень зависит от версии ОС и набора обновлений. Например:Central Europe Standard Time Ekaterinburg Standard Time Russia Time Zone 3
SpecTzName
Специальные временные зоны, определенные на уровне системы Дельта. Используются, чтобы избежать ошибок конвертирования времени между разными часовыми зонами, связанными с ошибками ОС.
Определены специальные временные зоны для России, корректно представляющие локальное время в России с 1996 года по настоящее время вне зависимости от версии ОС и набора обновлений.
Временная зонаSpecTzName
определяется как временная зона, соответствующая московскому времени, и с отдельным указанием смещения от UTC. Для московского времени определено отдельное значение:D8 Moscow
Время "как в Москве", но со сдвигом от UTC на +5 часов будет определено так:D8 Russia (UTC+05:00)